/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bl;

import dao.ContrasteDAO;
import entidades.Medidor;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.List;
import params.EstadoResultado;
import params.ParametroPruebaVacio;
import params.ParametrosAprobacion;
import serviceEntities.Zona;

/**
 *
 * @author RENZO
 */
public class ContrasteBL {
    public static List<Zona> getSincronizacion(long usuarioId) throws Exception,SQLException,ParseException{
        return ContrasteDAO.getSincronizacion(usuarioId);
    }
    
    public static Boolean registrarContraste(Medidor objMedidor,long userId){
        if(objMedidor.getContraste().getResultado().getLectura() == null){
            objMedidor.getContraste().getResultado().setEstado(EstadoResultado.IMPEDIMENTO);
            return ContrasteDAO.registrarContrasteImpedimento(objMedidor, userId);
        }else{
            if(objMedidor.getContraste().getResultado().getPruebaVacio().equals(ParametroPruebaVacio.APRUEBA) &&  
              (objMedidor.getContraste().getResultado().getEnsayo().getEnsayo5() <= (Double)ParametrosAprobacion.ensayo5 && 
                 objMedidor.getContraste().getResultado().getEnsayo().getEnsayo5() >= -(Double)ParametrosAprobacion.ensayo5 )&&
              (objMedidor.getContraste().getResultado().getEnsayo().getEnsayo10() <= (Double)ParametrosAprobacion.ensayo10 &&
                 objMedidor.getContraste().getResultado().getEnsayo().getEnsayo10() >= -(Double)ParametrosAprobacion.ensayo10)&&
              (objMedidor.getContraste().getResultado().getEnsayo().getEnsayo100() <= (Double)ParametrosAprobacion.ensayo100 &&
                 objMedidor.getContraste().getResultado().getEnsayo().getEnsayo100() >= -(Double)ParametrosAprobacion.ensayo100)&&
              (objMedidor.getContraste().getResultado().getEnsayo().getEnsayoImax() <= (Double)ParametrosAprobacion.ensayoImax &&
                 objMedidor.getContraste().getResultado().getEnsayo().getEnsayoImax() >= -(Double)ParametrosAprobacion.ensayoImax)
              ){
                objMedidor.getContraste().getResultado().setApueba("S");
                objMedidor.getContraste().getResultado().setEstado(EstadoResultado.DENTRO_NORMA);
            }else{
                objMedidor.getContraste().getResultado().setApueba("N");
                objMedidor.getContraste().getResultado().setEstado(EstadoResultado.FUERA_NORMA);
            }
        }
        return ContrasteDAO.registrarContraste(objMedidor, userId);
    }
}
